#ifndef __MEMORY_H__
#define __MEMORY_H__

/** @file
 * Simulation der Vektortabelle. Routinen erlauben das direkte Setzen und 
 * Auslesen von Interruptbehandlungsroutinen.
 */

#define RESET          0
#define UNDEF          1
#define SWI            2
#define PREFETCH_ABORT 3
#define DATA_ABORT     4
#define RESERVED       5
#define FIQ            7

//AIC Vectoren
#define IRQ_START      1000
#define IRQ_0          (IRQ_START + 0)
#define IRQ_1          (IRQ_START + 1)
#define IRQ_2          (IRQ_START + 2)
#define IRQ_3          (IRQ_START + 3)
#define IRQ_4          (IRQ_START + 4)
#define IRQ_5          (IRQ_START + 5)
#define IRQ_6          (IRQ_START + 6)
#define IRQ_7          (IRQ_START + 7)
#define IRQ_8          (IRQ_START + 8)
#define IRQ_9          (IRQ_START + 9)
#define IRQ_10         (IRQ_START + 10)
#define IRQ_11         (IRQ_START + 11)
#define IRQ_12         (IRQ_START + 12)
#define IRQ_13         (IRQ_START + 13)
#define IRQ_14         (IRQ_START + 14)
#define IRQ_15         (IRQ_START + 15)
#define IRQ_16         (IRQ_START + 16)
#define IRQ_17         (IRQ_START + 17)
#define IRQ_18         (IRQ_START + 18)
#define IRQ_19         (IRQ_START + 19)
#define IRQ_20         (IRQ_START + 20)
#define IRQ_21         (IRQ_START + 21)
#define IRQ_22         (IRQ_START + 22)
#define IRQ_23         (IRQ_START + 23)
#define IRQ_24         (IRQ_START + 24)
#define IRQ_25         (IRQ_START + 25)
#define IRQ_26         (IRQ_START + 26)
#define IRQ_27         (IRQ_START + 27)
#define IRQ_28         (IRQ_START + 28)
#define IRQ_29         (IRQ_START + 29)
#define IRQ_30         (IRQ_START + 30)
#define IRQ_31         (IRQ_START + 31)


void remap_memory();

/**
 * Initialisiere leere Vektortabelle
 */
void init_vector_table();

#endif // __MEMORY_H__

